package cn.infrabase.core.lang;

import cn.infrabase.core.util.RegexUtils;

import java.util.regex.Pattern;

/**
 *
 * @author Weimin Gao
 * @since 1.0.0
 **/
public class Validator {

    // -----------------------------------------------------------------------------------------------------------------
    // isMatchRegex

    /**
     * <pre>
     * 检查给定的正则及内容是否匹配。
     * 说明：
     * 1、如果给定的内容或正则为null时则返回false。
     * </pre>
     *
     * @param pattern 给定的正则。
     * @param content 给定的内容。
     * @return 真表示匹配。
     */
    public static boolean isMatchRegex(Pattern pattern, CharSequence content) {
        return RegexUtils.isMatch(pattern, content);
    }

    /**
     * <pre>
     * 检查给定的正则及内容是否匹配。
     * 说明：
     * 1、如果给定的内容为null时则返回false。
     * 2、如果给定的正则为null或者""时则返回true。
     * </pre>
     *
     * @param regex   给定的正则。
     * @param content 给定的内容。
     * @return 真表示匹配。
     */
    public static boolean isMatchRegex(String regex, CharSequence content) {
        return RegexUtils.isMatch(regex, content);
    }

    // -----------------------------------------------------------------------------------------------------------------
    // isHex

    /**
     * 验证是否为Hex（16进制）字符串。
     *
     * @param value 值
     * @return 是否为Hex（16进制）字符串
     * @since 4.3.3
     */
    public static boolean isHex(CharSequence value) {
        return isMatchRegex(PatternPool.HEX, value);
    }

}
